博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkPHP5 验证码
阅读量:4705 次
发布时间:2019-06-10

本文共 2402 字,大约阅读时间需要 8 分钟。

首先使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha

官方的5.0版本的扩展库版本号都是1.*2.0版本均为ThinkPHP5.1版本专用。

验证码的简单用法

扩展包内定义了一些常见用法方便使用,以下示例说明

注意:需要开启URL路由。

模版内验证码的显示

{
:captcha_img()}

或者

captcha

上面两种的最终效果是一样的,根据需要调用即可。

使用TP5的内置验证功能,添加captcha验证规则即可

$this->validate($data,[ 'captcha|验证码'=>'require|captcha' ]);

或者手动验证

if(!captcha_check($captcha)){ //验证失败 };

验证码的自定义用法

如果项目未开启路由,或者有实际需求可自行调用Captcha类操作

验证码的生成:

$captcha = new Captcha(); return $captcha->entry();

如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如:

$captcha = new Captcha(); return $captcha->entry(1);

验证码的验证:

可以用Captcha类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串,$id多个验证码标识function check_verify($code, $id = ''){ $captcha = new Captcha(); return $captcha->check($code, $id); }

验证码的配置参数

Captcha类带有默认的配置参数,支持自定义配置。这些参数包括:

如果使用了扩展内置的方法,务必在应用配置文件中配置,5.0.1及以上支持者在应用配置目录下面extra子目录内配置captcha.php文件

参数 描述 默认
codeSet 验证码字符集合
expire 验证码过期时间(s) 1800
useZh 使用中文验证码 false
zhSet 中文验证码字符串
useImgBg 使用背景图片 false
fontSize 验证码字体大小(px) 25
useCurve 是否画混淆曲线 true
useNoise 是否添加杂点 true
imageH 验证码图片高度,设置为0为自动计算 0
imageW 验证码图片宽度,设置为0为自动计算 0
length 验证码位数 5
fontttf 验证码字体,不设置是随机获取
bg 背景颜色 [243, 251, 254]
reset 验证成功后是否重置 true

参数设置使用两种方式。

实例化传入参数:

$config =    [    // 验证码字体大小    'fontSize'    => 30, // 验证码位数 'length' => 3, // 关闭验证码杂点 'useNoise' => false, ]; $captcha = new Captcha($config); return $captcha->entry();

或者采用动态设置的方式,如:

$captcha = new Captcha(); $captcha->fontSize = 30; $captcha->length = 3; $captcha->useNoise = false; return $captcha->entry();

验证码字体

默认情况下,验证码的字体是随机使用扩展包内 think-captcha/assets/ttfs目录下面的字体文件,我们可以指定验证码的字体,例如:

$captcha = new Captcha(); $captcha->fontttf = '5.ttf'; return $captcha->entry();

背景图片

支持验证码背景图片功能,可以如下设置:

$captcha = new Captcha(); // 开启验证码背景图片功能 随机使用扩展包内`think-captcha/assets/bgs`目录下面的图片 $captcha->useImgBg = true; return $captcha->entry();

中文验证码

如果要使用中文验证码,可以设置:

$captcha = new Captcha(); //中午 验证码字体使用扩展包内`think-captcha/assets/zhttfs`字体文件 $captcha->useZh = true; return $captcha->entry();

指定验证码字符

指定验证码的字符,可以设置:

$captcha = new Captcha(); // 设置验证码字符为纯数字 $captcha->codeSet = '0123456789'; return $captcha->entry();

如果是中文验证码,可以使用zhSet参数设置,例如:

$captcha = new Captcha(); $captcha->useZh = true; // 设置验证码字符 $captcha->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这'; return $captcha->entry();

默认的验证码字符已经剔除了易混淆的1l0o等字符

转载于:https://www.cnblogs.com/xu1115/p/11118537.html

你可能感兴趣的文章
【最短路】Dijkstra+ 链式前向星+ 堆优化(优先队列)
查看>>
linux下实现keepalived+nginx高可用
查看>>
【BZOJ3791】作业
查看>>
Html Agility Pack解析Html(C#爬虫利器)
查看>>
GridView中的CheckBox选中 (JQuery)
查看>>
webform(四)简单控件
查看>>
验证码
查看>>
敏捷开发入门教程
查看>>
C#发现之旅(收藏)
查看>>
POJ1125 Stockbroker Grapevine 多源最短路
查看>>
HDU 2126 Buy the souvenirs
查看>>
顺序容器的insert使用方法
查看>>
Markdown的使用
查看>>
销售系统学习.mdl
查看>>
触发器
查看>>
mysql配置默认字符集为UTF8mb4
查看>>
WPF实现3D翻转的动画效果
查看>>
自定义圆环进度条
查看>>
UILayer
查看>>
复杂对象写入文件
查看>>